import {
    baseRequest,
    mockRequest
} from './axiosConfig'
const dataAddressMap = window.globalDataTemp.dataAddress || {} // 获取接口地址
const globalEntryType = window.globalDataTemp.globalEntryType // 获取数据的方式； 1：后端接口获取数据   2：MOCK类型的JSON静态数据

// apiName: 数据请求具体路径
// RESTfulParams: RESTful请求获取后台数据时传给后端的参数
// externalOption：额外的请求配置，比如修改baseUrl
function request(apiName, RESTfulParams) {
    const singleApiConf = dataAddressMap[apiName] // 单个接口的数据源配置
    const entryType = singleApiConf.entryType || globalEntryType // 数据获取方式，静态/后台， 优先获取单个接口配置，如果没后取全局的
    const isMock = entryType === 2 // 是否去静态数据
    const url = isMock ? singleApiConf.mockUrl : singleApiConf.url // 如果是JSON静态数据， url则取mockUrl; 否则取后端api url

    const requestConf = {
        url: url,
        method: isMock ? 'GET' : singleApiConf.method,
        data: RESTfulParams
    }
    return isMock ? mockRequest(requestConf) : baseRequest(requestConf)
}

export {
    request
}